package org.durandj.ystream.client.message;

/**
 * A listing of the currently implemented message ID's.
 * 
 * @author durandj
 * @version 1.0
 *
 */
public enum MessageID
{
	/**
	 * <p>Tells the client to reload the music player. This usually happens after changing the VLC path.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	CLIENT_RELOAD_PLAYER,
	
	/**
	 * <p>Tells the client to connect to a server.</p>
	 * 
	 * <p>Params:</p>
	 * 	<ul>Address : String</ul>
	 * 	<ul>Port    : int</ul>
	 */
	CONNECT,
	
	/**
	 * <p>Tells the client to disconnect from the server.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	DISCONNECT,
	
	/**
	 * <p>Usually sent when a component needs to terminate.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	KILL,
	
	/**
	 * <p>Sent when the player should pause.</p>
	 * 
	 * <p>Params</p>
	 * 	<p>None</p>
	 */
	PLAYER_PAUSE,
	
	/**
	 * <p>Sent when the player should play.</p>
	 * 
	 * <p>Params</p>
	 * 	<p>None</p>
	 */
	PLAYER_PLAY,
	
	/**
	 * <p>Sent when the player should stop.</p>
	 * 
	 * <p>Params</p>
	 * 	<p>None</p>
	 */
	PLAYER_STOP,
	
	/**
	 * <p>Sent when the position in the current media has changed.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>Position : long</p>
	 */
	PLAYER_POSITION_CHANGED,
	
	/**
	 * <p>Sent when something needs to be added to the playlist.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>Filename : String</p>
	 */
	PLAYLIST_ADD,
	
	/**
	 * <p>Sent when something needs to be removed from the playlist.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>Index : Integer</p>
	 */
	PLAYLIST_REMOVE,
	
	/**
	 * <p>Sent when the playlist needs to be cleared.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	PLAYLIST_CLEAR,
	
	/**
	 * <p>Sent when something needs to be moved up in the playlist.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>Index : Integer</p>
	 */
	PLAYLIST_UP,
	
	/**
	 * <p>Sent when something needs to be moved down in the playlist.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>Index : Integer</p>
	 */
	PLAYLIST_DOWN,
	
	/**
	 * <p>Sent when the user jumps back to he previous item in the playlist.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	PLAYLIST_BACK,
	
	/**
	 * <p>Sent when the user is skipping to the next item in the playlist.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	PLAYLIST_NEXT,
	
	/**
	 * <p>Sent when a timer expires.</p>
	 * 
	 * <p>Params:</p>
	 * 	<p>None</p>
	 */
	TIMER_EXPIRED
}
